When a current block (or macroblock) is encoded/decoded in intra mode, a prediction block is formed based on adjacent samples from previously encoded/decoded and reconstructed blocks. The prediction block is subtracted from the current block prior to encoding. When the current block is decoded in intra mode, a prediction block is formed based upon samples from previously decoded and reconstructed blocks. The prediction block is added to the current block following decoding.
A prediction block for encoding and decoding chrominance is formed for each 8×8 chroma block. Intra Chroma Mode 0 DC Prediction defines 4×4 sub-blocks within each 8×8 block. The sub-blocks are evaluated based on the availability of reconstructed samples adjacent to the 8×8 block. Conventional approaches restrict the availability of some predictors when encoding and decoding the 4×4 sub-blocks. The conventional approach selects which predictor to apply on all sub-blocks based on the samples available to the 8×8 block, even though some of the sub-block predictors do not use all of the surrounding samples. Restricting the predictors available can yield a prediction block that is visually less accurate and less efficient.
It would be desirable to have a solution that would allow selection of the best 4×4 sub-block predictors available for the number of reconstructed samples available.